import request from './request.js'

// 商品模块接口集合

/**
 * 添加商品
 * @param {Object} product 接收前端的商品数据
 */
export const saveProduct = (product) => {
	return request.post('/shopping/product', product)
}

/**
 * 修改商品
 * @param {Object} product 接收前端的商品数据
 */
export const updateProduct = (product) => {
	return request.put('/shopping/product', product)
}

/**
 * 删除商品（支持单个删除和批量删除）
 * @param {Array<string>} ids 商品id集合
 */
export const deleteListProduct = (ids) => {
	return request.delete('/shopping/product', {
		data: ids
	})
}

/**
 * 分页查询
 * @param {Object} productPage 商品分页数据
 */
export const getProductPage = (productPage) => {
	return request.post('/shopping/product/page', productPage)
}

/**
 * 获取商品详情
 * @param {string} id 商品id
 */
export const getProductDetail = (id) => {
	return request.get(`/shopping/product/${id}`)
}

/**
 * 下架商品
 * @param {string} id 商品id
 */
export const takeOffProduct = (id) => {
	return request.put(`/shopping/product/takeOff/${id}`)
}

/**
 * 上架商品
 * @param {string} id 商品id
 */
export const listProduct = (id) => {
	return request.put(`/shopping/product/list/${id}`)
}

/**
 * 获取商品单位
 */
export const getProductUnit = () => {
	return request.get('/shopping/product')
}

/**
 * 删除商品图片
 * @param {string} id 商品图片id
 */
export const deleteProductImage = (id) => {
  return request.delete(`/shopping/product/image/${id}`)
}

/**
 * 上传商品图片
 * @param {FormData} images 图片文件(需要包含名为'images'的文件数组)
 */
export const uploadProductImages = (images) => {
  return request.post('/shopping/product/image', images, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}